package exemplos.exemplo02;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;

@Stateful
public class CartBean implements Cart {
	private String customerName;
	private String customerId;
	private List<String> contents;

	@Override
	public void initialize(String person) throws BookException {
		if (person == null) {
			throw new BookException("Nome do responsável não pode ser nulo.");	
		} else {
			customerName = person;
		}
		customerId = "0";
		contents = new ArrayList<String>();
	}

	@Override
	public void initialize(String person, String id) throws BookException {
		if (person == null || person.equals("")) {
			throw new BookException("Nome do responsável não pode ser nulo.");
		} else {
			customerName = person;
		}
		if (id != null && !id.equals("")) {
			customerId = id;
		} else {
			throw new BookException("ID inválido");
		}
		contents = new ArrayList<String>();
	}

	@Override
	public void addBook(String title) {
		contents.add(title);
	}

	@Override
	public void removeBook(String title) throws BookException {
		boolean result = contents.remove(title);
		if (result == false) {
			throw new BookException(title + " não encontra-se no carrinho.");
		}
	}

	@Override
	public List<String> getContents() {
		return contents;
	}

	@Override
	@Remove
	public void remove() {
		contents = null;
	}

	@Override
	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	@Override
	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}
}
